package com.steven.im.utils;

import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import com.steven.im.App;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Steven on 2019/2/11.
 */
public class ChangeTvColorUtils {
    /**
     * @param str  需要修改个别颜色的字符串
     * @param key1 开始位置的字符串
     * @param key2 结束位置的字符串
     * @return 返回 SpannableString对象
     */
    public static SpannableString textColor(String str, String key1, String key2, int colorId) {
        try {
            List<Integer> start_list = new ArrayList<>();
            List<Integer> end_list = new ArrayList<>();
            int a = str.indexOf(key1);//*第一个出现的索引位置
            int b = str.indexOf(key2);
            while (a != -1) {
                start_list.add(a);
                end_list.add(b);
                a = str.indexOf(key1, a + 1);//*从这个索引往后开始第一个出现的位置
                b = str.indexOf(key2, b + 1);//*从这个索引往后开始第一个出现的位置
            }
            SpannableString spannableString = new SpannableString(str);
            for (int i = 0; i < start_list.size(); i++) {
                spannableString.setSpan(new ForegroundColorSpan(App.getContext().getResources().getColor(colorId)), start_list.get(i), end_list.get(i) + 1, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
            }
            return spannableString;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return SpannableString.valueOf(str);
    }
}
